﻿using System;
using System.Data.SqlClient;
using System.Linq;
using GSQ.BusinessEntities;
using GSQ.DataAccess.DataSetTableAdapters;

namespace GSQ.DataAccess
{
    public class UtilidadesDA
    {
        private UTILIDADESTableAdapter Adapter = new UTILIDADESTableAdapter();
        private DataSet.UTILIDADESDataTable entities = null;
        private DataSet.UTILIDADESRow entity;

        //public decimal Insert(BANCOS value)
        //{
        //    using (SqlConnection cnn = new SqlConnection(Connection.GetConnectionString))
        //    {
        //        try
        //        {
        //            cnn.Open();
        //            Adapter.Connection = cnn;

        //            entities = new DataSet.BANCOSDataTable();

        //            entity = entities.NewBANCOSRow();

        //            entity.ID = value.ID;
        //            entity.BANCO = value.BANCO.Trim();
        //            entity.ACTIVO = value.ACTIVO;

        //            entities.AddBANCOSRow(entity);
        //            Adapter.Update(entities);

        //            value.ID = entity.ID;
        //            return value.ID;
        //        }
        //        finally
        //        {
        //            if (cnn.State != System.Data.ConnectionState.Closed)
        //                cnn.Close();
        //        }
        //    }
        //}

        //public decimal Update(BANCOS value)
        //{
        //    using (SqlConnection cnn = new SqlConnection(Connection.GetConnectionString))
        //    {
        //        try
        //        {
        //            cnn.Open();
        //            this.Adapter.Connection = cnn;

        //            entities = Adapter.GetDataByID(value.ID);
        //            entity = entities.FirstOrDefault();


        //            entity.BANCO = value.BANCO.Trim();
        //            entity.ACTIVO = value.ACTIVO;

        //            this.Adapter.Update(entities);

        //            return entity.ID;
        //        }
        //        finally
        //        {
        //            if (cnn.State != System.Data.ConnectionState.Closed)
        //                cnn.Close();
        //        }
        //    }
        //}

        //public BANCOS GetById(decimal id)
        //{
        //    using (SqlConnection cnn = new SqlConnection(Connection.GetConnectionString))
        //    {
        //        try
        //        {
        //            cnn.Open();
        //            this.Adapter.Connection = cnn;

        //            BANCOS banco;

        //            entity = this.Adapter.GetDataByID(id).FirstOrDefault();

        //            if (entity != null)
        //            {
        //                banco = new BANCOS
        //                    {
        //                        ID = entity.ID,
        //                        BANCO = entity.BANCO,
        //                        ACTIVO = entity.ACTIVO
        //                    };
        //            }
        //            else
        //                banco = new BANCOS();

        //            return banco;
        //        }
        //        finally
        //        {
        //            if (cnn.State != System.Data.ConnectionState.Closed)
        //                cnn.Close();
        //        }
        //    }
        //}

        public UTILIDADES Get()
        {
            using (SqlConnection cnn = new SqlConnection(Connection.GetConnectionString))
            {
                try
                {
                    cnn.Open();
                    this.Adapter.Connection = cnn;
                    entity = this.Adapter.GetData().FirstOrDefault();

                    UTILIDADES utilidades;

                    if (entity != null)
                    {
                        utilidades = new UTILIDADES();
                        utilidades.ID = entity.ID;
                        utilidades.NOMBRE_CIA = entity.NOMBRE_CIA;
                        utilidades.DIRECCION = entity.DIRECCION;
                        utilidades.TELEFONO1 = entity.TELEFONO1;

                        if (!entity.IsTELEFONO2Null())
                            utilidades.TELEFONO2 = entity.TELEFONO2;

                        if (!entity.IsFAXNull())
                            utilidades.FAX = entity.FAX;

                        if (!entity.IsEMAILNull())
                            utilidades.EMAIL = entity.EMAIL;

                        utilidades.RNC = entity.RNC;
                        utilidades.NOMBRE_IMPUESTO = entity.NOMBRE_IMPUESTO;
                        utilidades.X_IMPUESTOS = entity.X_IMPUESTOS;
                        utilidades.X_DESC_MAX = entity.X_DESC_MAX;
                        utilidades.FACTURAR_MERCANCIA_CERO = entity.FACTURAR_MERCANCIA_CERO;
                        utilidades.CLIENTE_POR_DEFECTO = entity.CLIENTE_POR_DEFECTO;
                        utilidades.DIAS_MAX_FACT_DEVOLUCIONES = entity.DIAS_MAX_FACT_DEVOLUCIONES;
                        utilidades.DIAS_NO_IMP_FAC_DEVOLUCIONES = entity.DIAS_NO_IMP_FAC_DEVOLUCIONES;
                        utilidades.VIJENCIA_COTIZACIONES = entity.VIJENCIA_COTIZACIONES;
                        utilidades.COBRAR_FACTURAS_AL_GUARDAR = entity.COBRAR_FACTURAS_AL_GUARDAR;
                        utilidades.AJUSTAR_PRECIOS_COSTO_COMPRAS = entity.AJUSTAR_PRECIOS_COSTO_COMPRAS;
                        utilidades.ANULAR_FACTURAS_PAGADAS = entity.ANULAR_FACTURAS_PAGADAS;
                    }
                    else
                        utilidades = null;

                    return utilidades;
                }
                finally
                {
                    if (cnn.State != System.Data.ConnectionState.Closed)
                        cnn.Close();
                }
            }
        }

        public DateTime GetDate()
        {
            using (SqlConnection cnn = new SqlConnection(Connection.GetConnectionString))
            {
                try
                {
                    cnn.Open();
                    QueriesTableAdapter query = new QueriesTableAdapter();
                    query.ChangeConnection(0, cnn);
                    return query.GetDate().Value;
                }
                finally
                {
                    if (cnn.State != System.Data.ConnectionState.Closed)
                        cnn.Close();
                }
            }
        }

        //public List<BANCOS> GetByDescripcion(string value)
        //{
        //    using (SqlConnection cnn = new SqlConnection(Connection.GetConnectionString))
        //    {
        //        try
        //        {
        //            cnn.Open();
        //            this.Adapter.Connection = cnn;

        //            List<BANCOS> lst = new List<BANCOS>();
        //            foreach (DataSet.BANCOSRow rw in this.Adapter.GetDataByBanco(value.Trim()))
        //            {
        //                lst.Add(new BANCOS
        //                {
        //                    ID = rw.ID,
        //                    BANCO = rw.BANCO,
        //                    ACTIVO = rw.ACTIVO
        //                });
        //            }
        //            return lst;
        //        }
        //        finally
        //        {
        //            if (cnn.State != System.Data.ConnectionState.Closed)
        //                cnn.Close();
        //        }
        //    }
        //}
    }
}
